package client;

import java.rmi.RemoteException;
import java.util.Vector;

public class ClientUpdateChecker extends Thread {
	private ClientView client;
	
	public ClientUpdateChecker(ClientView client) {
		this.client = client;
	}
	
	public void run() {
		
		while(true) {
			
			// #######################################################
			// Checking the handshaking entry
			// #######################################################
			
			String str = client.remote.handShake();
			client.dialogue.append(str);
			
			// #######################################################
			// Checking the playlist entry
			// #######################################################
			
			client.globalPlaylist.removeAllElements();
			try {
				client.globalPlaylist = client.remote.getPlayList();
			} catch (RemoteException e1) {
				e1.printStackTrace();
			}		
			
			if (null != client.globalPlaylist) {
				client.listGlobal.removeAll();
				Vector<String> list = client.getStringSong(client.globalPlaylist);
				client.listGlobal.setListData(list);
			}
			
			// #######################################################
			// Cheking if still connected to server
			// #######################################################
			
			try {
				if (!client.remote.isConnected()) {
					client.buttonConnectServer.setEnabled(true);
					client.buttonDisconnectServer.setEnabled(false);
				}
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			try {
				sleep(5000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
		} // end of while
		
	}

}
